package com.sxj.corejava.code08_常用类.String类;

import java.util.Arrays;

/**
 * @author 石小俊
 * @date 2025年01月10日
 */
public class Test02_常用方法 {

    public static void main(String[] args) {
        String s = " Hello World tom and jack and admin and alice and alex and tom World";
        System.out.println("字符串长度:" + s.length());
        // 去除首尾的空格
        s = s.trim();
        System.out.println("字符串长度:" + s.length());

        System.out.println("字符o第一次出现的索引位置:" + s.indexOf("o"));
        System.out.println("字符串and第一次出现的索引位置:" + s.indexOf("and"));

        System.out.println("字符o最后一次出现的索引位置:" + s.lastIndexOf("o"));
        System.out.println("字符串and最后一次出现的索引位置:" + s.lastIndexOf("and"));

        System.out.println("字符o在索引10之后第一次出现的索引位置:" + s.indexOf("o", 10));
        System.out.println("字符串and在索引20之后第一次出现的索引位置:" + s.indexOf("and", 20));

        System.out.println("字符o从起始位置到指定索引最后一次出现的索引位置:" + s.lastIndexOf("o", 50));
        System.out.println("字符串and从起始位置到指定索引最后一次出现的索引位置:" + s.lastIndexOf("and", 50));

        // 截取字符串
        // 从索引10开始截取到末尾
        System.out.println(s.substring(10));
        // 从索引10截取到索引20,[10,21)
        System.out.println(s.substring(10, 21));

        String s2 = "Hello";
        String s3 = " ";
        String s4 = "World";
        System.out.println(s2.concat(s3).concat(s4));
        System.out.println(s2 + s3 + s4);

        System.out.println("字符串s3是否为空:" + s3.isEmpty());
        System.out.println("s3的长度是否为0:" + (s3.length() == 0));
        String s5 = "";
        System.out.println("字符串s5是否为空:" + s5.isEmpty());
        System.out.println("s5的长度是否为0:" + (s5.length() == 0));

        System.out.println("索引10的字符:" + s.charAt(10));
        System.out.println("字符串是否以Hello开头:" + s.startsWith("Hello"));
        System.out.println("字符串是否以World结尾:" + s.endsWith("World"));
        System.out.println("字符串中是否包含admin:" + s.contains("admin"));

        String s6 = "hello";
        String s7 = "Hello";
        System.out.println("字符串hello与字符串Hello是否相等:" + s6.equals(s7));
        System.out.println("忽略大小写之后,字符串hello与字符串Hello是否相等:" + s6.equalsIgnoreCase(s7));

        System.out.println("Hello全小写之后:" + s7.toLowerCase());
        System.out.println("Hello全大写之后:" + s7.toUpperCase());

        System.out.println(s.replace(" ", "-"));
        String[] arr = s.split(" ");
        System.out.println(Arrays.toString(arr));

        // 将指定可变长参数中的元素通过指定分隔符转换成一个字符串
        String s8 = String.join(" ", "Hello", "World", "I", "am", "admin");
        System.out.println(s8);

        // 将指定迭代器(数组或者后面的集合)中的元素通过指定分隔符转换成一个字符串
        String[] names = {"admin", "tom", "alice", "lucy", "jack", "alex", "lily"};
        String s9 = String.join("-", names);
        System.out.println(s9);

    }

}
